name: i18n - Curriculum PR Validation
on:
  pull_request:
    branches:
      - main

jobs:
  ci:
    name: Validate i18n Builds
    # run only on PRs that camperbot opens with title that matches the curriculum sync
    if: ${{ github.event.pull_request.user.login == 'camperbot' && contains(github.event.pull_request.title, 'chore(i18n,learn)') }}
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        node-version: [20.x]

    steps:
      - name: Checkout Source Files
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
      - name: Setup pnpm
        uses: pnpm/action-setup@a3252b78c470c02df07e9d59298aecedc3ccdd6d #v3.0.0
        with:
          version: 8
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
        with:
          node-version: ${{ matrix.node-version }}
          cache: pnpm

      - name: Set freeCodeCamp Environment Variables
        run: cp sample.env .env

      - name: Install Dependencies
        run: pnpm install

      - name: Validate Challenge Files
        id: validate
        run: pnpm run audit-challenges

      - name: Create Comment
        # Run if the validate challenge files step fails, specifically. Note that we need the failure() call for this step to trigger if the action fails.
        if: ${{ failure() && steps.validate.conclusion == 'failure' }}
        uses: actions/github-script@d7906e4ad0b1822421a7e6a35d5ca353c962f410 # v6
        with:
          github-token: ${{secrets.CAMPERBOT_NO_TRANSLATE}}
          script: |
            github.rest.issues.createComment({
              issue_number: context.issue.number,
              owner: context.repo.owner,
              repo: context.repo.repo,
              body: "Hey @freecodecamp/i18n, it looks like we have new English curriculum files that need to be translated."
            })
